package com.ezgo.erc.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.session.RowBounds;

import com.ezgo.erc.master.exception.DaoException;

public interface IBaseDao<T> {
	/**
	 * 单表插入记录
	 * 
	 * @param obj
	 * @return int
	 */
	public int insert(T obj) throws DaoException;

	/**
	 * 更新单表
	 * 
	 * @param obj
	 * @return int
	 */
	public int update(T obj) throws DaoException;

	/**
	 * 删除记录
	 * 
	 * @param id
	 * @return int
	 */
	public int delete(Long id) throws DaoException;

	/**
	 * 查询单个数据
	 * 
	 * @param id
	 * @return T
	 */
	public T queryOne(Long id);

	/**
	 * 
	 * 返回查询一览表的信息
	 * 
	 * @param _params
	 * @return
	 */
	public List<T> query(Map<String, Object> _params);

	/**
	 * 
	 * 返回查询一览表的信息-分页
	 * 
	 * @param pageBounds
	 *            分页对象
	 * @param _params
	 * @return
	 */
	public List<T> getData(RowBounds pageBounds, Map<String, Object> _params);

	/**
	 * 
	 * 返回查询总数
	 * 
	 * @param _params
	 * @return
	 */
	public Integer getTotalCount(Map<String, Object> _params);

}
